Many network applications are based on the Hypertext Transfer Protocol (HTTP), which does not inherently support sessions. The HTTP protocol defines only a simple request-response exchange: in the absence of a session tracking mechanism, an HTTP server treats every HTTP request independently of any previous requests originated by the same user agent instance.
A session tracking mechanism is needed, for example, for any application requiring user authentication. A session can be established responsive to the HTTP server validating a user's credentials, and all subsequent HTTP requests from the same user agent instance will be treated as originated by the authenticated user, unless the user agent sends a log-out command or the session otherwise terminates (e.g., by the user closing the browser or by the HTTP server expiring the session due to inactivity).